﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Collections.ObjectModel;
using System.Data;
using produccion.reportes;
using System.Windows.Controls.Primitives;
using System.Threading;
using System.Globalization;
using System.Collections;

namespace produccion.forms
{
    /// <summary>
    /// Lógica de interacción para FrmCambiosAdministrativos.xaml
    /// </summary>
    public partial class FrmCambiosAdministrativos : Window
    {
        #region FJRF - VARIABLES DEL FORMULARIO
        MDOgeneral MdoGeneral = new MDOgeneral();//FJRF - Traemos toda la informacion y funciones de MdoGeneral

        DataTable DtConsulta;//FJRF - Usamos este DataTable para hacer consultas generales
        String StrConsulta;//FJRF - Usamos este DataTable para hacer consultas generales

        DataTable DtEncabezado = new DataTable("DtEncabezado");//FJRF - Usamos este DataTable para hacer consultas generales
        DataTable DtDetalle = new DataTable("DtEncabezado");//FJRF - Usamos este DataTable para hacer consultas generales

        DateTime DttFecha = DateTime.Now;//FJRF - Variable para manejar la fecha del sistema

        DateTime DttFechaInicial = DateTime.Now;//FJRF - Variable para manejar la fecha del sistema inicial
        DateTime DttFechaFinal = DateTime.Now;//FJRF - Variable para manejar la fecha del sistema Final
        String StrCambioSeleccionado;//FJRF - Para saber el cambio seleccionado
        #endregion

        #region FJRF - EVENTOS DEL FORMULARIO
        public FrmCambiosAdministrativos()
        {
            InitializeComponent();
        }
        private void WinFrmCambiosAdministrativos_Loaded(object sender, RoutedEventArgs e)
        {
            //FJRF - CON ESTO GARANTIZAMOS QUE LAS FECHAS SIEMPRE VENDRAN EN ESTE FORMATO DE DIA/MES/AÑO
            System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");//FJRF - Con esto aseguramos que la base de datos reciba los numeros como se deben recibir
            Thread.CurrentThread.CurrentCulture = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone();
            Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern = "dd/MM/yyyy";

            String StrDia = DttFecha.Day.ToString();//FJRF - Extraemos el dia
            String StrMes = DttFecha.Month.ToString();//FJRF - Extraemos el mes
            String StrAño = DttFecha.Year.ToString();//FJRF - Extraemos el año
            String StrContraseña = "";//FJRF - Contraseña formulario

            int IntNumeroDia = int.Parse(StrDia);//FJRF - Para determinar si el dia es par o impar
            if (MDOgeneral.usuario == "JAVR01")
            {
                StrContraseña = MDOgeneral.usuario + "_" + StrAño;//FJRF - Creamos la contraseña
            }
            else
            {
                if ((IntNumeroDia % 2) == 0)//FJRF - Si es par hacemos lo siguiente
                {
                    StrContraseña = MDOgeneral.usuario + "_" + StrDia.PadLeft(2, '0');//FJRF - Creamos la contraseña
                }
                else//Si no es par hacemos lo siguiente
                {
                    StrContraseña = MDOgeneral.usuario + "_" + StrMes.PadLeft(2, '0');//FJRF - Creamos la contraseña
                }
            }
            if(StrContraseña == "")//FJRF - Si el usuario no tiene contraseña hacemos lo siguiente
            {
                MessageBox.Show("El usuario actual no tiene una clave asignada y no puede usar este modulo","PROCESO CANCELADO", MessageBoxButton.OK,MessageBoxImage.Stop);//FJRF - Le enviamos un mensaje al usuario
                this.Close();//FJRF - Nos salimos
            }
            else//FJRF - Si el usuario tienes contraseña asignada hacemos lo siguiente
            {
                FrmContraseña FrmValidar = new FrmContraseña();//FJRF - Invocamos el formulario
                FrmValidar.pStrContraseñaCorrectaParaElFormularioQuePide = StrContraseña;//FJRF - Clave que pide el formulario

                FrmValidar.ShowDialog();//FJRF - Hacemos visible el formulario

                if (FrmValidar.pBooContraseñaCorrecta == false)//FJRF - Si la contraseña no es correcta hacemos lo siguiente
                {
                    this.Close();//FJRF - Nos salimos
                }
                else//FJRF - Si la contraseña es correcta hacemos lo siguiente
                {
                    #region FJRF - QUITAMOS LOS ESTILOS PARA CONTROL DEL FOTO

                    BtnProcesar.Style = null;//FJRF - Le quitamos el estilo para poder controlar el foco

                    TxtFiltroBusqueda1.Style = null;//FJRF - Le quitamos el estilo para poder controlar el foco
                    TxtFiltroBusqueda2.Style = null;//FJRF - Le quitamos el estilo para poder controlar el foco
                    TxtFiltroBusqueda3.Style = null;//FJRF - Le quitamos el estilo para poder controlar el foco

                    CboCodigoActual.Style = null;//FJRF - Le quitamos el estilo para poder controlar el foco
                    CboNombreActual.Style = null;//FJRF - Le quitamos el estilo para poder controlar el foco

                    CboNuevoCodigo.Style = null;//FJRF - Le quitamos el estilo para poder controlar el foco
                    CboNuevoNombre.Style = null;//FJRF - Le quitamos el estilo para poder controlar el foco

                    TxtDatoActual1.Style = null;//FJRF - Le quitamos el estilo para poder controlar el foco
                    TxtDatoActual2.Style = null;//FJRF - Le quitamos el estilo para poder controlar el foco
                    TxtDatoActual3.Style = null;//FJRF - Le quitamos el estilo para poder controlar el foco
                    
                    TxtNuevoDato1.Style = null;//FJRF - Le quitamos el estilo para poder controlar el foco
                    TxtNuevoDato2.Style = null;//FJRF - Le quitamos el estilo para poder controlar el foco
                    TxtNuevoDato3.Style = null;//FJRF - Le quitamos el estilo para poder controlar el foco

                    #endregion

                    CboCambioSeleccionado.SelectedIndex = 0;//FJRF - Ponemos los datos en el primer registro para que elijan una opcion
                    CboCambioSeleccionado.Focus();//FJRF - Ponemos el foco en este objeto
                }
            }
        }
        private void CboCambioSeleccionado_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            PttV_PonerObjetosVisibles(false);//FJRF - Ponemos invisibles los objetos
            PttV_Limpiar();//FJRF - Limpiamos todos los objetos
            
            String StrDato = CboCambioSeleccionado.SelectedValue.ToString().Replace("System.Windows.Controls.ComboBoxItem:", "").Trim();
            if (StrDato != "Seleccione una opción")//FJRF - Si no esta seleccionado ninguna opcion hacemos lo siguiente
            {
                String StrCodigo = MdoGeneral.PasarCadenaYRetornarCodigoONombre(StrDato, "-", "Codigo");//FJRF - Extraemos el codigo por si en algun momento se crea por base de datos siga funcionando asi
                
                StrCambioSeleccionado = StrCodigo;//FJRF - Asignamos el cambio seleccionado solo enviando el codigo
                PttV_ActivarOpciones();//FJRF - Activamos las opciones que usaremos
            }
        }
        private void DtgEncabezado_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
        {
            string strNombreColumna = "";//FJRF - Variable para saber el nombre de la columna
            strNombreColumna = e.Column.Header.ToString();//FJRF - Extraemos el nombre de la columna

            if (e.PropertyType == typeof(System.DateTime))//FJRF - Estas son las columnas que tendran el formato de fecha
            {
                (e.Column as DataGridTextColumn).Binding.StringFormat = "dd/MM/yyyy";//FJRF - Asignamos el formato a la fecha
            }
            if (StrCambioSeleccionado == "01")//FJRF - Si se selecciono esta opcion hacemos lo siguiente
            {
                #region FJRF - Le ponemos formato a las columnas numericas
                if (strNombreColumna == "PROGRAMADO" || strNombreColumna == "COSTO" || strNombreColumna == "VALORTOTAL")//FJRF - Si alguna de las columnas tiene este nombre hacemos lo siguiente
                {
                    Style MyStyleTextAlignmentProperty = new Style(typeof(DataGridCell));//FJRF - Creamos un nuevo estilo para la celda
                    MyStyleTextAlignmentProperty.Setters.Add(new Setter(TextBlock.TextAlignmentProperty, TextAlignment.Right));//FJRF - Alineamos los datos de la celda a la derecha

                    (e.Column as DataGridTextColumn).Binding.StringFormat = "{0:##,#0.##}";//FJRF - Enviamos el formato a la celda
                    (e.Column as DataGridTextColumn).CellStyle = MyStyleTextAlignmentProperty;//FJRF - Asignamos el estilo creado
                }
                #endregion
            }
            if (StrCambioSeleccionado == "02")//FJRF - Si se selecciono esta opcion hacemos lo siguiente
            {
                #region FJRF - Le ponemos formato a las columnas numericas
                if (strNombreColumna == "CANTIDAD" || strNombreColumna == "COSTO")//FJRF - Si alguna de las columnas tiene este nombre hacemos lo siguiente
                {
                    Style MyStyleTextAlignmentProperty = new Style(typeof(DataGridCell));//FJRF - Creamos un nuevo estilo para la celda
                    MyStyleTextAlignmentProperty.Setters.Add(new Setter(TextBlock.TextAlignmentProperty, TextAlignment.Right));//FJRF - Alineamos los datos de la celda a la derecha

                    (e.Column as DataGridTextColumn).Binding.StringFormat = "{0:##,#0.##}";//FJRF - Enviamos el formato a la celda
                    (e.Column as DataGridTextColumn).CellStyle = MyStyleTextAlignmentProperty;//FJRF - Asignamos el estilo creado
                }
                #endregion
            }
            if (StrCambioSeleccionado == "03")//FJRF - Si se selecciono esta opcion hacemos lo siguiente
            {

            }

            e.Column.IsReadOnly = true;//FJRF - Inavilita las columnas para que no se pueda escribir sobre ella
        }

        private void DtgEncabezado_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            try
            {
                if (DtgEncabezado.SelectedItem == null)//FJRF - Si no hay algun pedido seleccionado hacemos lo siguiente
                    return;//FJRF - Nos salimos

                if (StrCambioSeleccionado == "01")//FJRF - Si se selecciono esta opcion hacemos lo siguiente
                {
                    #region FJRF - ACTIVAMOS LA SELECCION DE LOS DATOS

                    DataRowView dr = DtgEncabezado.SelectedItem as DataRowView;//FJRF - Cargamos un DataRowView con el dato seleccionado
                    DataRow dr1 = dr.Row;//FJRF - Asignamos las finas

                    String StrNumeroDeHoja = Convert.ToString(dr1.ItemArray[0]);//FJRF - Decimos que traiga el dato de la fila seleccionada
                    String StrCodigoMaterial = Convert.ToString(dr1.ItemArray[1]);//FJRF - Decimos que traiga el dato de la fila seleccionada
                    String StrNombreMaterial = Convert.ToString(dr1.ItemArray[2]);//FJRF - Decimos que traiga el dato de la fila seleccionada

                    String StrCodigoColor = Convert.ToString(dr1.ItemArray[3]);//FJRF - Decimos que traiga el dato de la fila seleccionada
                    String StrNombreColor = Convert.ToString(dr1.ItemArray[4]);//FJRF - Decimos que traiga el dato de la fila seleccionada

                    String StrCosto = Convert.ToString(dr1.ItemArray[6]);//FJRF - Decimos que traiga el dato de la fila seleccionada

                    LblCodigoSeleccionado.Content = StrNumeroDeHoja;//FJRF - Asignamos los valores
                    LblReferenciaOMaterialSeleccionado.Content = StrCodigoMaterial;//FJRF - Asignamos los valores
                    LblColorSeleccionado.Content = StrCodigoColor;//FJRF - Asignamos los valores
                    LblLineaPunteada.Content = StrNombreMaterial + " - " + StrNombreColor;//FJRF - Asignamos los valores

                    TxtDatoActual1.Text = StrCosto;//FJRF - Asignamos los valores

                    TxtNuevoDato1.Text = "0";//FJRF - Limpiamos el costo

                    TxbTituloGridEncabezado.Width = 490; //FJRF - Ponemos el objeto normal

                    DtgEncabezado.Height = 456; //FJRF - Ponemos el objeto normal
                    DtgEncabezado.Width = 490; //FJRF - Ponemos el objeto normal 

                    TxtNuevoDato1.Focus();//FJRF - Ponemos el foco donde empieza la edicion de datos

                    #endregion
                }
                if (StrCambioSeleccionado == "02")//FJRF - Si se selecciono esta opcion hacemos lo siguiente
                {
                    #region FJRF - ACTIVAMOS LA SELECCION DE LOS DATOS

                    DataRowView dr = DtgEncabezado.SelectedItem as DataRowView;//FJRF - Cargamos un DataRowView con el dato seleccionado
                    DataRow dr1 = dr.Row;//FJRF - Asignamos las finas

                    String StrNumeroDeHoja = Convert.ToString(dr1.ItemArray[0]);//FJRF - Decimos que traiga el dato de la fila seleccionada
                    String StrCodigoMaterial = Convert.ToString(dr1.ItemArray[1]);//FJRF - Decimos que traiga el dato de la fila seleccionada
                    String StrNombreMaterial = Convert.ToString(dr1.ItemArray[2]);//FJRF - Decimos que traiga el dato de la fila seleccionada

                    String StrCodigoColor = Convert.ToString(dr1.ItemArray[3]);//FJRF - Decimos que traiga el dato de la fila seleccionada
                    String StrNombreColor = Convert.ToString(dr1.ItemArray[4]);//FJRF - Decimos que traiga el dato de la fila seleccionada

                    String StrCosto = Convert.ToString(dr1.ItemArray[6]);//FJRF - Decimos que traiga el dato de la fila seleccionada

                    LblCodigoSeleccionado.Content = StrNumeroDeHoja;//FJRF - Asignamos los valores
                    LblReferenciaOMaterialSeleccionado.Content = StrCodigoMaterial;//FJRF - Asignamos los valores
                    LblColorSeleccionado.Content = StrCodigoColor;//FJRF - Asignamos los valores
                    LblLineaPunteada.Content = StrNombreMaterial + " - " + StrNombreColor;//FJRF - Asignamos los valores

                    TxtDatoActual1.Text = StrCosto;//FJRF - Asignamos los valores

                    TxtNuevoDato1.Text = "0";//FJRF - Limpiamos el costo

                    TxbTituloGridEncabezado.Width = 490; //FJRF - Ponemos el objeto normal

                    DtgEncabezado.Height = 456; //FJRF - Ponemos el objeto normal
                    DtgEncabezado.Width = 490; //FJRF - Ponemos el objeto normal 

                    TxtNuevoDato1.Focus();//FJRF - Ponemos el foco donde empieza la edicion de datos

                    #endregion
                }
                if (StrCambioSeleccionado == "03")//FJRF - Si se selecciono esta opcion hacemos lo siguiente
                {

                }

            }
            catch (Exception ex)//FJRF - Si pasa un error hacemos lo siguiente
            {
                MessageBox.Show(ex.Message);//FJRF - Mostramos el error en pantalla
            }
        }
        private void TxtFiltroBusqueda1_TextChanged(object sender, TextChangedEventArgs e)
        {
            PttV_BuscarDatos();//FJRF - Se envia el codigo seleccionado
        }
        private void TxtFiltroBusqueda2_TextChanged(object sender, TextChangedEventArgs e)
        {
            PttV_BuscarDatos();//FJRF - Se envia el codigo seleccionado
        }
        private void TxtFiltroBusqueda3_TextChanged(object sender, TextChangedEventArgs e)
        {
            PttV_BuscarDatos();//FJRF - Se envia el codigo seleccionado
        }
        private void TxtNuevoDato1_TextChanged(object sender, TextChangedEventArgs e)
        {
            if (StrCambioSeleccionado == "01")//FJRF - Si se selecciono esta opcion hacemos lo siguiente
            {
                #region FJRF - Validar solo numeros
                Double DblCostoDigitado = 0;//FJRF - Variable que maneraja el costo
                
                if (TxtNuevoDato1.Text.Trim() == "")//FJRF - Si no hay cantidad digitada hacemos lo siguiente
                {
                    DblCostoDigitado = 0;//FJRF - Enviamos un cero por defecto
                    LblValorDigitadoConFormato.Content = "0";

                    LblTituloValorDigitadoConFormato.Visibility = Visibility.Hidden;
                    LblValorDigitadoConFormato.Visibility = Visibility.Hidden;

                    BtnGuardar.Visibility = Visibility.Hidden;
                }
                else//FJRF - Si se digito algun valos hacemos lo siguiente
                {
                    DblCostoDigitado = Double.Parse(TxtNuevoDato1.Text.Trim());//FJRF - Convertimos el valor digitado en un numero para poder ponerle formato

                    if (DblCostoDigitado > 0)
                    {
                        LblTituloValorDigitadoConFormato.Visibility = Visibility.Visible;

                        LblValorDigitadoConFormato.Content = DblCostoDigitado;//FJRF - Asignamos el valor digitado
                        LblValorDigitadoConFormato.Visibility = Visibility.Visible;

                        LblValorDigitadoConFormato.ContentStringFormat = "{0:##,#0.##}";//FJRF - Ponemos un formato al valor digitado
                        LblValorDigitadoConFormato.Visibility = Visibility.Visible;

                        BtnGuardar.Visibility = Visibility.Visible;
                    }
                    else
                    {
                        DblCostoDigitado = 0;//FJRF - Enviamos un cero por defecto
                        LblValorDigitadoConFormato.Content = "0";

                        LblTituloValorDigitadoConFormato.Visibility = Visibility.Hidden;
                        LblValorDigitadoConFormato.Visibility = Visibility.Hidden;

                        BtnGuardar.Visibility = Visibility.Hidden;
                    }
                }
                #endregion
            }
            if (StrCambioSeleccionado == "02")//FJRF - Si se selecciono esta opcion hacemos lo siguiente
            {
                #region FJRF - Validar solo numeros
                Double DblCostoDigitado = 0;//FJRF - Variable que maneraja el costo

                if (TxtNuevoDato1.Text.Trim() == "")//FJRF - Si no hay cantidad digitada hacemos lo siguiente
                {
                    DblCostoDigitado = 0;//FJRF - Enviamos un cero por defecto
                    LblValorDigitadoConFormato.Content = "0";

                    LblTituloValorDigitadoConFormato.Visibility = Visibility.Hidden;
                    LblValorDigitadoConFormato.Visibility = Visibility.Hidden;

                    BtnGuardar.Visibility = Visibility.Hidden;
                }
                else//FJRF - Si se digito algun valos hacemos lo siguiente
                {
                    DblCostoDigitado = Double.Parse(TxtNuevoDato1.Text.Trim());//FJRF - Convertimos el valor digitado en un numero para poder ponerle formato

                    if (DblCostoDigitado > 0)
                    {
                        LblTituloValorDigitadoConFormato.Visibility = Visibility.Visible;

                        LblValorDigitadoConFormato.Content = DblCostoDigitado;//FJRF - Asignamos el valor digitado
                        LblValorDigitadoConFormato.Visibility = Visibility.Visible;

                        LblValorDigitadoConFormato.ContentStringFormat = "{0:##,#0.##}";//FJRF - Ponemos un formato al valor digitado
                        LblValorDigitadoConFormato.Visibility = Visibility.Visible;

                        BtnGuardar.Visibility = Visibility.Visible;
                    }
                    else
                    {
                        DblCostoDigitado = 0;//FJRF - Enviamos un cero por defecto
                        LblValorDigitadoConFormato.Content = "0";

                        LblTituloValorDigitadoConFormato.Visibility = Visibility.Hidden;
                        LblValorDigitadoConFormato.Visibility = Visibility.Hidden;

                        BtnGuardar.Visibility = Visibility.Hidden;
                    }
                }
                #endregion
            }
            if (StrCambioSeleccionado == "03")//FJRF - Si se selecciono esta opcion hacemos lo siguiente
            {
 
            }
        }
        private void BtnGuardar_Click(object sender, RoutedEventArgs e)
        {
            PttV_Grabar();//FJRF - Guardamos los datos segun la opcion
        }
        private void BtnSalir_Click(object sender, RoutedEventArgs e)
        {
            this.Close();//FJRF - Cerramos el formulario
        }
        #endregion

        #region FJRF - FUNCIONES Y PROCEDIMIENTOS
        protected void PttV_ActivarOpciones()
        {
            if (StrCambioSeleccionado == "01")//FJRF - Si se selecciono esta opcion hacemos lo siguiente
            {
                #region FJRF - OBJETOS VISIBLES 01 [DETALLE ENTRADAS]

                //FJRF - OBJETOS DE BUSQUEDA DE DATOS
                LblTituloFiltro1.Content = "Digite el número de entrada";
                LblTituloFiltro1.Visibility = Visibility.Visible;
                TxtFiltroBusqueda1.Visibility = Visibility.Visible;
                TxtFiltroBusqueda1.MaxLength = 7;
                TxtFiltroBusqueda1.Text = "";

                LblFiltrarPorParametro1.Content = "Obligatorio";
                LblFiltrarPorParametro1.Visibility = Visibility.Visible;

                LblTituloFiltro2.Content = "Digite el numero del material";
                LblTituloFiltro2.Visibility = Visibility.Visible;
                TxtFiltroBusqueda2.Visibility = Visibility.Visible;
                TxtFiltroBusqueda2.MaxLength = 6;
                TxtFiltroBusqueda2.Text = "";

                LblFiltrarPorParametro2.Content = "Opcional";
                LblFiltrarPorParametro2.Visibility = Visibility.Visible;

                LblTituloFiltro3.Content = "Digite el numero del color";
                LblTituloFiltro3.Visibility = Visibility.Visible;
                TxtFiltroBusqueda3.Visibility = Visibility.Visible;
                TxtFiltroBusqueda3.MaxLength = 4;
                TxtFiltroBusqueda3.Text = "";

                LblFiltrarPorParametro3.Content = "Opcional";
                LblFiltrarPorParametro3.Visibility = Visibility.Visible;

                //FJRF - GRID
                TxbTituloGridEncabezado.Width = 989; //FJRF - Ponemos el objeto grande

                DtgEncabezado.Height = 456; //FJRF - Ponemos el objeto grande para que tape el detalle
                DtgEncabezado.Width = 988; //FJRF - Ponemos el objeto grande para que tape el detalle

                TxbTituloGridEncabezado.Text = " DETALLE DE ENTRADAS ENCONTRADO";
                TxbTituloGridEncabezado.Visibility = Visibility.Visible;

                DtgEncabezado.ItemsSource = null;
                DtgEncabezado.Items.Clear();

                DtEncabezado = null;
                DtEncabezado = new DataTable("DtEncabezado");

                DtgEncabezado.Visibility = Visibility.Visible;

                //FJRF - OBJETOS DE MODIFICACION
                RecContenedorCambios.Visibility = Visibility.Visible;

                //FJRF - OBJETOS DE MODIFICACION - [Dato seleccionado]
                LblTituloCodigoSeleccionado.Content = "Número de hoja";
                LblTituloCodigoSeleccionado.Visibility = Visibility.Visible;
                LblCodigoSeleccionado.Content = "";
                LblCodigoSeleccionado.Visibility = Visibility.Visible;

                LblTituloReferenciaOMaterialSeleccionado.Content = "Material";
                LblTituloReferenciaOMaterialSeleccionado.Visibility = Visibility.Visible;
                LblReferenciaOMaterialSeleccionado.Content = "";
                LblReferenciaOMaterialSeleccionado.Visibility = Visibility.Visible;

                LblTituloColorSeleccionado.Content = "Color";
                LblTituloColorSeleccionado.Visibility = Visibility.Visible;
                LblColorSeleccionado.Content = "";
                LblColorSeleccionado.Visibility = Visibility.Visible;

                LblLineaPunteada.Visibility = Visibility.Visible;
                
                //FJRF - OBJETOS DE MODIFICACION - [Dato a modificar]
                LblTituloModificarUnDato.Content = "COSTO A MODIFICAR";
                LblTituloModificarUnDato.Visibility = Visibility.Visible;

                LblTituloDatoActual1.Content = "Costo actual";
                LblTituloDatoActual1.Visibility = Visibility.Visible;
                TxtDatoActual1.Text = "0";
                TxtDatoActual1.IsEnabled = false;
                TxtDatoActual1.Background = Brushes.AliceBlue;
                TxtDatoActual1.Visibility = Visibility.Visible;

                LblTituloNuevoDato1.Content = "Nuevo costo";
                LblTituloNuevoDato1.Visibility = Visibility.Visible;
                TxtNuevoDato1.Text = "0";
                TxtNuevoDato1.Visibility = Visibility.Visible;

                TxtFiltroBusqueda1.Focus();

                #endregion
            }
            if (StrCambioSeleccionado == "02")//FJRF - Si se selecciono esta opcion hacemos lo siguiente
            {
                #region FJRF - OBJETOS VISIBLES 02 [DETALLE SALIDAS]

                //FJRF - OBJETOS DE BUSQUEDA DE DATOS
                LblTituloFiltro1.Content = "Digite el número de la salida";
                LblTituloFiltro1.Visibility = Visibility.Visible;
                TxtFiltroBusqueda1.Visibility = Visibility.Visible;
                TxtFiltroBusqueda1.MaxLength = 7;
                TxtFiltroBusqueda1.Text = "";

                LblFiltrarPorParametro1.Content = "Obligatorio";
                LblFiltrarPorParametro1.Visibility = Visibility.Visible;

                LblTituloFiltro2.Content = "Digite el numero del material";
                LblTituloFiltro2.Visibility = Visibility.Visible;
                TxtFiltroBusqueda2.Visibility = Visibility.Visible;
                TxtFiltroBusqueda2.MaxLength = 6;
                TxtFiltroBusqueda2.Text = "";

                LblFiltrarPorParametro2.Content = "Opcional";
                LblFiltrarPorParametro2.Visibility = Visibility.Visible;

                LblTituloFiltro3.Content = "Digite el numero del color";
                LblTituloFiltro3.Visibility = Visibility.Visible;
                TxtFiltroBusqueda3.Visibility = Visibility.Visible;
                TxtFiltroBusqueda3.MaxLength = 4;
                TxtFiltroBusqueda3.Text = "";

                LblFiltrarPorParametro3.Content = "Opcional";
                LblFiltrarPorParametro3.Visibility = Visibility.Visible;

                //FJRF - GRID
                TxbTituloGridEncabezado.Width = 989; //FJRF - Ponemos el objeto grande

                DtgEncabezado.Height = 456; //FJRF - Ponemos el objeto grande para que tape el detalle
                DtgEncabezado.Width = 988; //FJRF - Ponemos el objeto grande para que tape el detalle

                TxbTituloGridEncabezado.Text = " DETALLE DE SALIDAS ENCONTRADAS";
                TxbTituloGridEncabezado.Visibility = Visibility.Visible;

                DtgEncabezado.ItemsSource = null;
                DtgEncabezado.Items.Clear();

                DtEncabezado = null;
                DtEncabezado = new DataTable("DtEncabezado");

                DtgEncabezado.Visibility = Visibility.Visible;

                //FJRF - OBJETOS DE MODIFICACION
                RecContenedorCambios.Visibility = Visibility.Visible;

                //FJRF - OBJETOS DE MODIFICACION - [Dato seleccionado]
                LblTituloCodigoSeleccionado.Content = "Número de hoja";
                LblTituloCodigoSeleccionado.Visibility = Visibility.Visible;
                LblCodigoSeleccionado.Content = "";
                LblCodigoSeleccionado.Visibility = Visibility.Visible;

                LblTituloReferenciaOMaterialSeleccionado.Content = "Material";
                LblTituloReferenciaOMaterialSeleccionado.Visibility = Visibility.Visible;
                LblReferenciaOMaterialSeleccionado.Content = "";
                LblReferenciaOMaterialSeleccionado.Visibility = Visibility.Visible;

                LblTituloColorSeleccionado.Content = "Color";
                LblTituloColorSeleccionado.Visibility = Visibility.Visible;
                LblColorSeleccionado.Content = "";
                LblColorSeleccionado.Visibility = Visibility.Visible;

                LblLineaPunteada.Visibility = Visibility.Visible;

                //FJRF - OBJETOS DE MODIFICACION - [Dato a modificar]
                LblTituloModificarUnDato.Content = "COSTO A MODIFICAR";
                LblTituloModificarUnDato.Visibility = Visibility.Visible;

                LblTituloDatoActual1.Content = "Costo actual";
                LblTituloDatoActual1.Visibility = Visibility.Visible;
                TxtDatoActual1.Text = "0";
                TxtDatoActual1.IsEnabled = false;
                TxtDatoActual1.Background = Brushes.AliceBlue;
                TxtDatoActual1.Visibility = Visibility.Visible;

                LblTituloNuevoDato1.Content = "Nuevo costo";
                LblTituloNuevoDato1.Visibility = Visibility.Visible;
                TxtNuevoDato1.Text = "0";
                TxtNuevoDato1.Visibility = Visibility.Visible;

                TxtFiltroBusqueda1.Focus();
                #endregion
            }
            if (StrCambioSeleccionado == "03")//FJRF - Si se selecciono esta opcion hacemos lo siguiente
            {
                MessageBox.Show("La opción número [ " + StrCambioSeleccionado + " ] se esta desarrollando, una vez finalizada, se le informara al area correspondiente. ", "PROCESO CANCELADO", MessageBoxButton.OK, MessageBoxImage.Stop);//FJRF - Enviamos un mensaje al usuario
            }
        }
        protected void PttV_Limpiar()
        { 

        }
        protected void PttV_BuscarDatos()
        {
            if (StrCambioSeleccionado == "01")//FJRF - Si se selecciono esta opcion hacemos lo siguiente
            {
                String StrFiltroBusqueda1 = TxtFiltroBusqueda1.Text.ToUpper().Trim(), StrFiltroBusqueda2 = TxtFiltroBusqueda2.Text.ToUpper().Trim(), StrFiltroBusqueda3 = TxtFiltroBusqueda3.Text.ToUpper().Trim();//FJRF - Cargamos la variables con los datos como lo necesitamos

                #region FJRF - LIMPIAMOS LOS DATOS QUE SE USARAN 01
                LblCodigoSeleccionado.Content = "";//FJRF - Limpiamos los datos
                LblReferenciaOMaterialSeleccionado.Content = "";//FJRF - Limpiamos los datos
                LblColorSeleccionado.Content = "";//FJRF - Limpiamos los datos

                LblTituloNuevoDato1.Content = "Nuevo costo";//FJRF - Limpiamos los datos

                TxtDatoActual1.Text = "0";//FJRF - Limpiamos los datos
                TxtNuevoDato1.Text = "0";//FJRF - Limpiamos los datos

                LblValorDigitadoConFormato.Content = "0";//FJRF - Limpiamos los datos
                #endregion

                #region FJRF - REALIZAMOS LA BUSQUEDA DE LOS DATOS 01

                StrConsulta = "SELECT HOJA,  CODIGOMATERIAL,  NOMBREMATERIAL,  CODIGOCOLOR,  NOMBRECOLOR,  PROGRAMADO,  COSTO,  VALORTOTAL, FECHAENTRADA,  DOCUMENTO,  NROPEDIDO,  CODIGOPROVEEDOR,  NOMBREPROVEEDOR,  CONCEPTO  ";//FJRF - Armamos la consulta

                if (StrFiltroBusqueda1 != "" && StrFiltroBusqueda2 == "" && StrFiltroBusqueda3 == "")
                {
                    StrConsulta = StrConsulta + "FROM VIS_DETENTP WHERE HOJA = '" + StrFiltroBusqueda1 + "' ";//FJRF - Armamos la consulta
                    
                    DtEncabezado = MdoGeneral.consulta(StrConsulta);//FJRF - Buscamos los datos
                    DtgEncabezado.ItemsSource = DtEncabezado.DefaultView;//FJRF - Asignamos los datos encontrados
                }
                if (StrFiltroBusqueda1 != "" && StrFiltroBusqueda2 != "" && StrFiltroBusqueda3 == "")
                {
                    StrConsulta = StrConsulta + "FROM VIS_DETENTP WHERE HOJA = '" + StrFiltroBusqueda1 + "' ";//FJRF - Armamos la consulta
                    StrConsulta = StrConsulta + "AND CODIGOMATERIAL LIKE '%" + StrFiltroBusqueda2 + "%' ";//FJRF - Armamos la consulta

                    DtEncabezado = MdoGeneral.consulta(StrConsulta);//FJRF - Buscamos los datos
                    DtgEncabezado.ItemsSource = DtEncabezado.DefaultView;//FJRF - Asignamos los datos encontrados
                }
                if (StrFiltroBusqueda1 != "" && StrFiltroBusqueda2 != "" && StrFiltroBusqueda3 != "")
                {
                    StrConsulta = StrConsulta + "FROM VIS_DETENTP WHERE HOJA = '" + StrFiltroBusqueda1 + "' ";//FJRF - Armamos la consulta
                    StrConsulta = StrConsulta + "AND CODIGOMATERIAL LIKE '%" + StrFiltroBusqueda2 + "%' ";//FJRF - Armamos la consulta
                    StrConsulta = StrConsulta + "AND CODIGOCOLOR LIKE '%" + StrFiltroBusqueda3 + "%' ";//FJRF - Armamos la consulta

                    DtEncabezado = MdoGeneral.consulta(StrConsulta);//FJRF - Buscamos los datos
                    DtgEncabezado.ItemsSource = DtEncabezado.DefaultView;//FJRF - Asignamos los datos encontrados
                }
                if (StrFiltroBusqueda1 != "" && StrFiltroBusqueda2 == "" && StrFiltroBusqueda3 != "")
                {
                    StrConsulta = StrConsulta + "FROM VIS_DETENTP WHERE HOJA = '" + StrFiltroBusqueda1 + "' ";//FJRF - Armamos la consulta
                    StrConsulta = StrConsulta + "AND CODIGOCOLOR LIKE '%" + StrFiltroBusqueda3 + "%' ";//FJRF - Armamos la consulta

                    DtEncabezado = MdoGeneral.consulta(StrConsulta);//FJRF - Buscamos los datos
                    DtgEncabezado.ItemsSource = DtEncabezado.DefaultView;//FJRF - Asignamos los datos encontrados
                }
                #endregion

                TxbTituloGridEncabezado.Width = 989; //FJRF - Ponemos el objeto grande

                DtgEncabezado.Height = 456; //FJRF - Ponemos el objeto grande para que tape el detalle
                DtgEncabezado.Width = 988; //FJRF - Ponemos el objeto grande para que tape el detalle
            }
            if (StrCambioSeleccionado == "02")//FJRF - Si se selecciono esta opcion hacemos lo siguiente
            {
                String StrFiltroBusqueda1 = TxtFiltroBusqueda1.Text.ToUpper().Trim(), StrFiltroBusqueda2 = TxtFiltroBusqueda2.Text.ToUpper().Trim(), StrFiltroBusqueda3 = TxtFiltroBusqueda3.Text.ToUpper().Trim();//FJRF - Cargamos la variables con los datos como lo necesitamos

                #region FJRF - LIMPIAMOS LOS DATOS QUE SE USARAN 02
                LblCodigoSeleccionado.Content = "";//FJRF - Limpiamos los datos
                LblReferenciaOMaterialSeleccionado.Content = "";//FJRF - Limpiamos los datos
                LblColorSeleccionado.Content = "";//FJRF - Limpiamos los datos

                LblTituloNuevoDato1.Content = "Nuevo costo";//FJRF - Limpiamos los datos

                TxtDatoActual1.Text = "0";//FJRF - Limpiamos los datos
                TxtNuevoDato1.Text = "0";//FJRF - Limpiamos los datos

                LblValorDigitadoConFormato.Content = "0";//FJRF - Limpiamos los datos
                #endregion

                #region FJRF - REALIZAMOS LA BUSQUEDA DE LOS DATOS 01

                StrConsulta = "SELECT TRIM(UPPER(HOJNRO_DSA)) AS HOJA, TRIM(UPPER(CODMAT_DSA)) AS CODIGOMATERIAL, TRIM(UPPER(NOMMAT_MAT)) AS NOMBREMATERIAL,  TRIM(UPPER(CODCOL_DSA)) AS CODIGOCOLOR, TRIM(UPPER(NOMCOL_COL)) AS NOMBRECOLOR,  CANPRO_DSA AS CANTIDAD,  COSPRO_DSA AS COSTO, FECSAL_ESA AS FECHASALIDA, TRIM(UPPER(TIPSAL_DSA)) AS TIPO, TRIM(UPPER(OBSSAL_ESA)) AS OBSERVACIONES, TRIM(UPPER(ESTADO_ESA)) AS ESTADO  ";//FJRF - Armamos la consulta
                StrConsulta = StrConsulta + "FROM DETSALP, MAEMAT, MAECOLP, ENCSALP WHERE HOJNRO_DSA = HOJNRO_ESA AND CODMAT_DSA = CODMAT_MAT AND CODCOL_DSA = CODCOL_COL  ";//FJRF - Armamos la consulta con etas tablas

                if (StrFiltroBusqueda1 != "" && StrFiltroBusqueda2 == "" && StrFiltroBusqueda3 == "")
                {
                    StrConsulta = StrConsulta + "AND HOJNRO_DSA = '" + StrFiltroBusqueda1 + "' ";//FJRF - Armamos la consulta

                    DtEncabezado = MdoGeneral.consulta(StrConsulta);//FJRF - Buscamos los datos
                    DtgEncabezado.ItemsSource = DtEncabezado.DefaultView;//FJRF - Asignamos los datos encontrados
                }
                if (StrFiltroBusqueda1 != "" && StrFiltroBusqueda2 != "" && StrFiltroBusqueda3 == "")
                {
                    StrConsulta = StrConsulta + "AND HOJNRO_DSA = '" + StrFiltroBusqueda1 + "' ";//FJRF - Armamos la consulta
                    StrConsulta = StrConsulta + "AND CODMAT_DSA LIKE '%" + StrFiltroBusqueda2 + "%' ";//FJRF - Armamos la consulta

                    DtEncabezado = MdoGeneral.consulta(StrConsulta);//FJRF - Buscamos los datos
                    DtgEncabezado.ItemsSource = DtEncabezado.DefaultView;//FJRF - Asignamos los datos encontrados
                }
                if (StrFiltroBusqueda1 != "" && StrFiltroBusqueda2 != "" && StrFiltroBusqueda3 != "")
                {
                    StrConsulta = StrConsulta + "AND HOJNRO_DSA = '" + StrFiltroBusqueda1 + "' ";//FJRF - Armamos la consulta
                    StrConsulta = StrConsulta + "AND CODMAT_DSA LIKE '%" + StrFiltroBusqueda2 + "%' ";//FJRF - Armamos la consulta
                    StrConsulta = StrConsulta + "AND CODCOL_DSA LIKE '%" + StrFiltroBusqueda3 + "%' ";//FJRF - Armamos la consulta

                    DtEncabezado = MdoGeneral.consulta(StrConsulta);//FJRF - Buscamos los datos
                    DtgEncabezado.ItemsSource = DtEncabezado.DefaultView;//FJRF - Asignamos los datos encontrados
                }
                if (StrFiltroBusqueda1 != "" && StrFiltroBusqueda2 == "" && StrFiltroBusqueda3 != "")
                {
                    StrConsulta = StrConsulta + "AND HOJNRO_DSA = '" + StrFiltroBusqueda1 + "' ";//FJRF - Armamos la consulta
                    StrConsulta = StrConsulta + "AND CODCOL_DSA LIKE '%" + StrFiltroBusqueda3 + "%' ";//FJRF - Armamos la consulta

                    DtEncabezado = MdoGeneral.consulta(StrConsulta);//FJRF - Buscamos los datos
                    DtgEncabezado.ItemsSource = DtEncabezado.DefaultView;//FJRF - Asignamos los datos encontrados
                }
                #endregion

                TxbTituloGridEncabezado.Width = 989; //FJRF - Ponemos el objeto grande

                DtgEncabezado.Height = 456; //FJRF - Ponemos el objeto grande para que tape el detalle
                DtgEncabezado.Width = 988; //FJRF - Ponemos el objeto grande para que tape el detalle
            }
        }
        protected void PttV_PonerObjetosVisibles(Boolean BooTrueFalse)
        {
            if (BooTrueFalse == true)//FJRF - Si es verdadero hacemos lo siguiente
            {
                #region FJRF - PONEMOS LOS OBJETOS VISIBLES
                //FJRF - RANGO DE FECJAS
                LblTituloFechaInicial.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible
                DtpFechaInicial.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible

                LblTituloFechaFinal.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible
                DtpFechaFinal.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible

                BtnProcesar.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible

                //FJRF - FILTROS
                LblFiltrarPorParametro1.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible
                LblTituloFiltro1.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible
                TxtFiltroBusqueda1.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible

                LblFiltrarPorParametro2.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible
                LblTituloFiltro2.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible
                TxtFiltroBusqueda2.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible

                LblFiltrarPorParametro3.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible
                LblTituloFiltro3.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible
                TxtFiltroBusqueda3.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible

                //FJRF - GRIDS
                TxbTituloGridEncabezado.Width = 989; //FJRF - Ponemos el objeto grande
                TxbTituloGridEncabezado.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible

                DtgEncabezado.Height = 456; //FJRF - Ponemos el objeto grande para que tape el detalle
                DtgEncabezado.Width = 988; //FJRF - Ponemos el objeto grande para que tape el detalle
                DtgEncabezado.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible

                TxbTituloGridDetalle.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible
                DtgDetalle.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible

                //DATOS A MODIFICAR SELECCIONADO
                LblTituloCodigoSeleccionado.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible
                LblCodigoSeleccionado.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible

                LblTituloReferenciaOMaterialSeleccionado.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible
                LblReferenciaOMaterialSeleccionado.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible

                LblTituloColorSeleccionado.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible
                LblColorSeleccionado.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible

                LblLineaPunteada.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible

                //FJRF - FECHAS A MODIFICAR
                LblTituloModificarFechas.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible

                LblTituloFechaActual.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible
                DtpFechaActual.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible

                LblTituloFechaFinalAModificar.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible
                DtpNuevaFechaAModificar.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible

                //FJRF - MODIFICAR UNA OPCION
                LblTituloModificarUnaOpcion.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible

                LblTituloCodigo.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible
                CboCodigoActual.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible

                LblTituloNombre.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible
                CboNombreActual.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible

                LblTituloNuevoCodigo.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible
                CboNuevoCodigo.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible

                LblTituloNuevoNombre.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible
                CboNuevoNombre.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible

                //FJRF - MODIFICAR UN DATO
                LblTituloModificarUnDato.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible

                LblTituloDatoActual1.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible
                TxtDatoActual1.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible

                LblTituloNuevoDato1.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible
                TxtNuevoDato1.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible

                LblTituloDatoActual2.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible
                TxtDatoActual2.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible 

                LblTituloNuevoDato2.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible
                TxtNuevoDato2.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible

                LblTituloDatoActual3.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible
                TxtDatoActual3.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible

                LblTituloNuevoDato3.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible
                TxtNuevoDato3.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible

                RecContenedorCambios.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible

                LblTituloValorDigitadoConFormato.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible
                LblValorDigitadoConFormato.Visibility = Visibility.Visible;//FJRF - Ponemos el objeto visible
                #endregion
            }
            else//FJRF - Si es falso hacemos lo siguiemte
            {
                #region FJRF - PONEMOS LOS OBJETOS INVISIBLES
                //FJRF - RANGO DE FECJAS
                LblTituloFechaInicial.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible
                DtpFechaInicial.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible

                LblTituloFechaFinal.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible
                DtpFechaFinal.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible

                BtnProcesar.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible

                //FJRF - FILTROS
                LblFiltrarPorParametro1.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible
                LblTituloFiltro1.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible
                TxtFiltroBusqueda1.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible

                LblFiltrarPorParametro2.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible
                LblTituloFiltro2.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible
                TxtFiltroBusqueda2.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible

                LblFiltrarPorParametro3.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible
                LblTituloFiltro3.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible
                TxtFiltroBusqueda3.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible

                //FJRF - GRIDS
                TxbTituloGridEncabezado.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible
                DtgEncabezado.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible

                TxbTituloGridEncabezado.Width = 490; //FJRF - Ponemos el objeto normal

                DtgEncabezado.Height = 213; //FJRF - Ponemos el objeto normal
                DtgEncabezado.Width = 490; //FJRF - Ponemos el objeto normal 

                TxbTituloGridDetalle.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible
                DtgDetalle.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible

                //DATOS A MODIFICAR SELECCIONADO
                LblTituloCodigoSeleccionado.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible
                LblCodigoSeleccionado.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible

                LblTituloReferenciaOMaterialSeleccionado.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible
                LblReferenciaOMaterialSeleccionado.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible

                LblTituloColorSeleccionado.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible
                LblColorSeleccionado.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible

                LblLineaPunteada.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible

                //FJRF - FECHAS A MODIFICAR
                LblTituloModificarFechas.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible

                LblTituloFechaActual.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible
                DtpFechaActual.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible

                LblTituloFechaFinalAModificar.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible
                DtpNuevaFechaAModificar.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible

                //FJRF - MODIFICAR UNA OPCION
                LblTituloModificarUnaOpcion.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible

                LblTituloCodigo.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible
                CboCodigoActual.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible

                LblTituloNombre.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible
                CboNombreActual.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible

                LblTituloNuevoCodigo.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible
                CboNuevoCodigo.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible

                LblTituloNuevoNombre.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible
                CboNuevoNombre.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible

                //FJRF - MODIFICAR UN DATO
                LblTituloModificarUnDato.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible

                LblTituloDatoActual1.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible
                TxtDatoActual1.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible

                LblTituloNuevoDato1.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible
                TxtNuevoDato1.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible

                LblTituloDatoActual2.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible
                TxtDatoActual2.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible 

                LblTituloNuevoDato2.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible
                TxtNuevoDato2.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible

                LblTituloDatoActual3.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible
                TxtDatoActual3.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible

                LblTituloNuevoDato3.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible
                TxtNuevoDato3.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible

                RecContenedorCambios.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible

                LblTituloValorDigitadoConFormato.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible
                LblValorDigitadoConFormato.Visibility = Visibility.Hidden;//FJRF - Ponemos el objeto visible

                #endregion
            }
        }
        protected String PttStr_SePuedeGrabar()
        {
            String StrRetornar = "";
            if (StrCambioSeleccionado == "01")//FJRF - Si se selecciono esta opcion hacemos lo siguiente
            {
                #region FJRF - Creamos las validaciones necesarias
                if (TxtNuevoDato1.Text.Trim() == "" || TxtNuevoDato1.Text.Trim() == "0")//FJRF - Si no tiene datos hacemos lo siguiente
                {
                    StrRetornar = "Falta digitar el nuevo costo";//FJRF - Enviamos un mensaje al usuario
                }
                else
                {
                    Double DblCosto;//FJRF - Creamos una variable para validar el costo
                    DblCosto = Double.Parse(TxtNuevoDato1.Text.Trim());//FJRF - Asigamos el valor

                    if (DblCosto <= 0)//FJRF - Si el costo es menor o igual a cero hacemos lo siguiente
                    {
                        StrRetornar = "El costo no puede ser menor o igual a cero";//FJRF - Enviamos un mensaje al usuario
                    }
                }
                #endregion
            }
            if (StrCambioSeleccionado == "02")//FJRF - Si se selecciono esta opcion hacemos lo siguiente
            {
            }
            if (StrCambioSeleccionado == "03")//FJRF - Si se selecciono esta opcion hacemos lo siguiente
            {

            }
            return StrRetornar;
        }
        protected void PttV_Grabar()
        {
            String StrMensaje = PttStr_SePuedeGrabar();//FJRF - Verificamos si se puede continuar

            if (StrMensaje == "")//FJRF - Si no hay mensaje hacemos lo siguiente
            {
                #region FJRF - PreguntamosSiQueremosGuardar
                String StrCaptionBox = "CONFIRMACIÓN PARA CAMBIO DE DATOS";
                String StrMensajeBox = "Esta seguro de guardar los cambios?";
                MessageBoxButton buttons = MessageBoxButton.YesNo;
                MessageBoxImage icon = MessageBoxImage.Question;
                #endregion

                if (MessageBox.Show(StrMensajeBox, StrCaptionBox, buttons, icon) == MessageBoxResult.Yes)//FJRF - Si el usuario quiere guardar hacemos lo siguiente
                {
                    try//FJRF - Controlamos el error en caso de que exista
                    {
                        Mouse.OverrideCursor = Cursors.Wait;//FJRF - Pone el cursor en modo de espera

                        if (StrCambioSeleccionado == "01")//FJRF - Si se selecciono esta opcion hacemos lo siguiente
                        {
                            #region FJRF - GUARDAR COSTO

                            StrConsulta = "UPDATE DETENTP SET COSPRO_DEN = '" + TxtNuevoDato1.Text.Trim() + "'  WHERE  HOJNRO_DEN = '" + LblCodigoSeleccionado.Content + "' AND CODMAT_DEN = '" + LblReferenciaOMaterialSeleccionado.Content + "' AND CODCOL_DEN = '" + LblColorSeleccionado.Content + "' ";//FJRF - Armamos la actualizacion
                            MdoGeneral.comando(StrConsulta);//FJRF - Ejecutamos la actualizacion

                            MessageBox.Show("Se actualizo en la entrada [ " + LblCodigoSeleccionado.Content + " ] el materia [ " + LblReferenciaOMaterialSeleccionado.Content + " ] de nombre [ " + LblLineaPunteada.Content + " ] con un costo de [ " + TxtNuevoDato1.Text.Trim() + " ] ", "COSTO ACTUALIZADO CON EXITO", MessageBoxButton.OK, MessageBoxImage.Information);//FJRF - Le enviamos un mensaje al usuario

                            PttV_BuscarDatos();//FJRF - Buscamos los datos para verlos actualizados
                            #endregion
                        }
                        if (StrCambioSeleccionado == "02")//FJRF - Si se selecciono esta opcion hacemos lo siguiente
                        {
                            #region FJRF - GUARDAR COSTO

                            StrConsulta = "UPDATE DETSALP SET COSPRO_DSA = '" + TxtNuevoDato1.Text.Trim() + "'  WHERE  HOJNRO_DSA = '" + LblCodigoSeleccionado.Content + "' AND CODMAT_DSA = '" + LblReferenciaOMaterialSeleccionado.Content + "' AND CODCOL_DSA = '" + LblColorSeleccionado.Content + "' ";//FJRF - Armamos la actualizacion
                            MdoGeneral.comando(StrConsulta);//FJRF - Ejecutamos la actualizacion

                            MessageBox.Show("Se actualizo en la salida [ " + LblCodigoSeleccionado.Content + " ] el materia [ " + LblReferenciaOMaterialSeleccionado.Content + " ] de nombre [ " + LblLineaPunteada.Content + " ] con un costo de [ " + TxtNuevoDato1.Text.Trim() + " ] ", "COSTO ACTUALIZADO CON EXITO", MessageBoxButton.OK, MessageBoxImage.Information);//FJRF - Le enviamos un mensaje al usuario

                            PttV_BuscarDatos();//FJRF - Buscamos los datos para verlos actualizados
                            #endregion
                        }
                        if (StrCambioSeleccionado == "03")//FJRF - Si se selecciono esta opcion hacemos lo siguiente
                        {

                        }

                        Mouse.OverrideCursor = Cursors.Arrow;//FJRF - Pone el cursor de forma normal
                    }
                    catch (Exception ex)//FJRF - Si hay error hacemos lo siguiente
                    {
                        Mouse.OverrideCursor = Cursors.Arrow;//FJRF - Pone el cursor de forma normal
                        MessageBox.Show(ex.Message, "PROCESO CANCELADO", MessageBoxButton.OK, MessageBoxImage.Error);//FJRF - Si se genera un error informamos al usuario que paso
                    }
                }
                else//FJRF - Si el usuario no quieres guardar hacemos lo siguiente
                {
                    MessageBox.Show("No se guardaron los datos", "PROCESO CANCELADO", MessageBoxButton.OK, MessageBoxImage.Stop);//FJRF - Le enviamos un mensaje al usuario
                }
            }
            else//FJRF - Si se genero un mensaje hacemos lo siguiente
            {
                MessageBox.Show(StrMensaje,"PROCESO CANCELADO", MessageBoxButton.OK,MessageBoxImage.Stop);//FJRF - Le enviamos un mensaje al usuario
            }
        }
        #endregion
    }
}
